package com.guonl;

import cn.hutool.core.util.StrUtil;
import com.github.davidfantasy.mybatisplus.generatorui.GeneratorConfig;
import com.github.davidfantasy.mybatisplus.generatorui.MybatisPlusToolsApplication;
import com.github.davidfantasy.mybatisplus.generatorui.mbp.NameConverter;
import com.google.common.base.Strings;

public class GeberatorUIServer {

//    public static void main(String[] args) {
//        GeneratorConfig config = GeneratorConfig.builder().jdbcUrl("jdbc:mysql://localhost:3306/bootstrap_page")
//                .userName("root")
//                .password("123456")
//                .driverClassName("com.mysql.cj.jdbc.Driver")
//                //数据库schema，MSSQL,PGSQL,ORACLE,DB2类型的数据库需要指定
//                .schemaName("bootstrap_page")
//                //数据库表前缀，生成entity名称时会去掉(v2.0.3新增)
//                .tablePrefix("t_")
//                //如果需要修改entity及其属性的命名规则，以及自定义各类生成文件的命名规则，可自定义一个NameConverter实例，覆盖相应的名称转换方法，详细可查看该接口的说明：
//                .nameConverter(new NameConverter() {
//
//                    @Override
//                    public String entityNameConvert(String tableName, String tablePrefix) {
//                        if (Strings.isNullOrEmpty(tableName)) {
//                            return "";
//                        } else {
//                            if (!StrUtil.isBlank(tablePrefix) && tableName.startsWith(tablePrefix)) {
//                                tableName = tableName.substring(tablePrefix.length());
//                            }
//
//                            return StrUtil.upperFirst(StrUtil.toCamelCase(tableName.toLowerCase())) + "Plus";
//                        }
//                    }
//
//
////                    /**
////                     * 自定义Service类文件的名称规则，entityName是NameConverter.entityNameConvert处理表名后的返回结果，如有特别的需求可以自定义实现
////                     */
////                    @Override
////                    public String serviceNameConvert(String entityName) {
////                        return entityName + "PlusService";
////                    }
////
////                    /**
////                     * 自定义Controller类文件的名称规则
////                     */
////                    @Override
////                    public String controllerNameConvert(String entityName) {
////                        return entityName + "PlusController";
////                    }
////
////                    @Override
////                    public String mapperNameConvert(String entityName) {
////                        return entityName + "PlusMapper";
////                    }
////
////                    @Override
////                    public String mapperXmlNameConvert(String entityName) {
////                        return entityName + "PlusMapper";
////                    }
////
////                    @Override
////                    public String serviceImplNameConvert(String entityName) {
////                        return entityName + "PlusServiceImpl";
////                    }
//
//                })
//                //所有生成的java文件的父包名，后续也可单独在界面上设置
//                .basePackage("com.guonl.plus")
//                .port(8068)
//                .build();
//        MybatisPlusToolsApplication.run(config);
//    }

    public static void main(String[] args) {
        GeneratorConfig config = GeneratorConfig.builder().jdbcUrl("jdbc:mysql://10.210.40.203:5200/artery?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true")
                .userName("root")
                .password("Abc123..")
                .driverClassName("com.mysql.cj.jdbc.Driver")
                //数据库schema，MSSQL,PGSQL,ORACLE,DB2类型的数据库需要指定
                .schemaName("artery")
                //数据库表前缀，生成entity名称时会去掉(v2.0.3新增)
                .tablePrefix("t_")
                //如果需要修改entity及其属性的命名规则，以及自定义各类生成文件的命名规则，可自定义一个NameConverter实例，覆盖相应的名称转换方法，详细可查看该接口的说明：
                .nameConverter(new NameConverter() {

//                    @Override
//                    public String entityNameConvert(String tableName, String tablePrefix) {
//                        if (Strings.isNullOrEmpty(tableName)) {
//                            return "";
//                        } else {
//                            if (!StrUtil.isBlank(tablePrefix) && tableName.startsWith(tablePrefix)) {
//                                tableName = tableName.substring(tablePrefix.length());
//                            }
//
//                            return StrUtil.upperFirst(StrUtil.toCamelCase(tableName.toLowerCase())) + "Plus";
//                        }
//                    }


//                    /**
//                     * 自定义Service类文件的名称规则，entityName是NameConverter.entityNameConvert处理表名后的返回结果，如有特别的需求可以自定义实现
//                     */
//                    @Override
//                    public String serviceNameConvert(String entityName) {
//                        return entityName + "PlusService";
//                    }
//
//                    /**
//                     * 自定义Controller类文件的名称规则
//                     */
//                    @Override
//                    public String controllerNameConvert(String entityName) {
//                        return entityName + "PlusController";
//                    }
//
//                    @Override
//                    public String mapperNameConvert(String entityName) {
//                        return entityName + "PlusMapper";
//                    }
//
//                    @Override
//                    public String mapperXmlNameConvert(String entityName) {
//                        return entityName + "PlusMapper";
//                    }
//
//                    @Override
//                    public String serviceImplNameConvert(String entityName) {
//                        return entityName + "PlusServiceImpl";
//                    }

                })
                //所有生成的java文件的父包名，后续也可单独在界面上设置
                .basePackage("com.sfjswl.fp.risk.mysql")
                .port(8068)
                .build();
        MybatisPlusToolsApplication.run(config);
    }

}
